package com.lpf.nio;

import java.nio.ByteBuffer;

/**
 * 功能描述：只读buffer
 *          我们可以随时将一个普通的buffer调用asReadOnlyBuffer方法返回一个只读buffer。
 *          但不能将一个只读buffer转换为读写buffer。
 *          对原有buffer内容的修改在只读buffer也是可见的。
 *          两个buffer的position、limit、mark是完全相互独立的。
 *
 * @author lpf
 * @date 2019/11/25 19:42
 * @version: 1.0
 **/
public class NioTest07 {

    public static void main(String[] arg) {

        ByteBuffer buffer = ByteBuffer.allocate(10);

        System.out.println(buffer.getClass());

        for (int i = 0; i < buffer.capacity(); i++) {
            buffer.put((byte) i);
        }

        // 只读 buffer，只能读不能写
        ByteBuffer readonly = buffer.asReadOnlyBuffer();

        System.out.println(readonly.getClass());

        readonly.position(0);
        readonly.put((byte) 2);
    }
}
